home *** CD-ROM | disk | FTP | other *** search
/ PC for Alla 2005 May / PC för Alla 0505.iso / fullversioner / realsoft3d / data1.cab / Scripting / scripts / js / real / objects / r3subdiv.js < prev    next >
Encoding:
JavaScript  |  2005-04-04  |  50.7 KB  |  1,568 lines

  1.  
  2. // JavaScript wrapper for r3subdiv.h
  3. // Auto generated file, do not modify by hand
  4. // Copyright ⌐ 2004, Realsoft Graphics Oy
  5.  
  6. var R3_SUBDIV_H = 1;
  7. include("real/objects/r3level.js")
  8. include("real/objects/r3triset.js")
  9.  
  10.  
  11. var R3CLID_SUBDIVISION = 1235;
  12.  
  13. var R3SDSMAXWEIGHT = 100;
  14. var R3SDSMINWEIGHT = 0.001;
  15. var R3SDS_MAXMATERIALSPERFACE = 20;
  16.  
  17.  
  18.  
  19. // Description: adds a face between n selected vertices
  20.  
  21. R3SUBDIVM_ADDFACE = 1235000;
  22.  
  23. function mR3SUBDIVM_ADDFACE() {
  24.   DoA(this.r3obj, 1235000, 0, R3TID_INTEGER, 0);
  25. }
  26.  
  27. // Description: merges selected vertices
  28.  
  29. R3SUBDIVM_MERGEVERTICES = 1235001;
  30.  
  31. function mR3SUBDIVM_MERGEVERTICES() {
  32.   DoA(this.r3obj, 1235001, 0, R3TID_INTEGER, 0);
  33. }
  34.  
  35. // Description: subdivides the whole object
  36. // p3: Integer, number of iterations, >0    
  37.  
  38. R3SUBDIVM_SUBDIVIDE = 1235002;
  39.  
  40. function mR3SUBDIVM_SUBDIVIDE(p3) {
  41.   DoA(this.r3obj, 1235002, p3, R3TID_INTEGER, 0);
  42. }
  43.  
  44. // Description: subdivides selected faces
  45.  
  46. R3SUBDIVM_SUBDIVIDEFACE = 1235003;
  47.  
  48. function mR3SUBDIVM_SUBDIVIDEFACE() {
  49.   DoA(this.r3obj, 1235003, 0, R3TID_INTEGER, 0);
  50. }
  51.  
  52. // Description: extrudes selected edges or faces
  53. // Returns: Boolean, true if succeeded
  54. // p1: Number, extrusion depth
  55. // p2: Integer, action, see r3subdivisionaction below
  56. // p3: Tag[], tag list containing R3SUBDIVA_ExtrudeRegionOpt, R3SUBDIVA_ExtrudeNormalOpt, R3SUBDIVA_ExtrudeLeaveFloor, R3SUBDIVA_ExtrudeSectionCount.    
  57.  
  58. R3SUBDIVM_EXTRUDE = 1235004;
  59.  
  60. function mR3SUBDIVM_EXTRUDE(p1, p2, p3) {
  61.   return   Do3(this.r3obj, 1235004, p1, R3TID_FLOAT, 0, p2, R3TID_INTEGER, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  62. }
  63.  
  64. // Description: return the number of edges of the face that has the most edges.
  65. // Returns: Integer, max edgecount
  66.  
  67. R3SUBDIVM_GETMAXEDGESPERFACE = 1235005;
  68.  
  69. function mR3SUBDIVM_GETMAXEDGESPERFACE() {
  70.   return   DoA(this.r3obj, 1235005, 0, R3TID_INTEGER, 0);
  71. }
  72.  
  73. // Description: splits the selected edges.
  74.  
  75. R3SUBDIVM_SPLITEDGE = 1235006;
  76.  
  77. function mR3SUBDIVM_SPLITEDGE() {
  78.   DoA(this.r3obj, 1235006, 0, R3TID_INTEGER, 0);
  79. }
  80.  
  81. // Description: divides face between two selected vertices.
  82.  
  83. R3SUBDIVM_DIVIDEFACE = 1235007;
  84.  
  85. function mR3SUBDIVM_DIVIDEFACE() {
  86.   DoA(this.r3obj, 1235007, 0, R3TID_INTEGER, 0);
  87. }
  88.  
  89. // Description: merges selected faces.
  90.  
  91. R3SUBDIVM_MERGEFACES = 1235008;
  92.  
  93. function mR3SUBDIVM_MERGEFACES() {
  94.   DoA(this.r3obj, 1235008, 0, R3TID_INTEGER, 0);
  95. }
  96.  
  97. // Description: Set given UV coordinates for the selected vertices
  98.  
  99. R3SUBDIVM_SETUV = 1235009;
  100.  
  101. function mR3SUBDIVM_SETUV() {
  102.   DoA(this.r3obj, 1235009, 0, R3TID_INTEGER, 0);
  103. }
  104.  
  105. // Description: Fetch the uv coordinates of the given vertex
  106. // Returns: Boolean, true if succeeded
  107. // p1: r3Vect, uv coordinates
  108. // p3: Integer, index of the vertex    
  109.  
  110. R3SUBDIVM_GETUV = 1235010;
  111.  
  112. function mR3SUBDIVM_GETUV(p1, p3) {
  113.   return   DoA2(this.r3obj, 1235010, p1, R3TID_VECTOR, 0, p3, R3TID_INTEGER, 0);
  114. }
  115.  
  116. // Description: separates the selected edges.
  117.  
  118. R3SUBDIVM_SEPARATEFACES = 1235011;
  119.  
  120. function mR3SUBDIVM_SEPARATEFACES() {
  121.   DoA(this.r3obj, 1235011, 0, R3TID_INTEGER, 0);
  122. }
  123.  
  124. // Description: creates an empty face (no vertices)
  125.  
  126. R3SUBDIVM_NEWFACE = 1235013;
  127.  
  128. function mR3SUBDIVM_NEWFACE() {
  129.   DoA(this.r3obj, 1235013, 0, R3TID_INTEGER, 0);
  130. }
  131.  
  132. // Description: deletes a face
  133. // p3: Integer, face index    
  134.  
  135. R3SUBDIVM_DELFACE = 1235014;
  136.  
  137. function mR3SUBDIVM_DELFACE(p3) {
  138.   DoA(this.r3obj, 1235014, p3, R3TID_INTEGER, 0);
  139. }
  140.  
  141. // Description: modifies the specified face (index in p3) to contain selected vertices
  142. // p3: Integer, face index    
  143.  
  144. R3SUBDIVM_UPDATEFACE = 1235015;
  145.  
  146. function mR3SUBDIVM_UPDATEFACE(p3) {
  147.   DoA(this.r3obj, 1235015, p3, R3TID_INTEGER, 0);
  148. }
  149.  
  150. // Description: melts faces together by removing separating edges. * Action depends on select resolution.
  151.  
  152. R3SUBDIVM_MELT = 1235016;
  153.  
  154. function mR3SUBDIVM_MELT() {
  155.   DoA(this.r3obj, 1235016, 0, R3TID_INTEGER, 0);
  156. }
  157.  
  158. // Description: extrudes the selected vertices
  159. // p1: Number, percentage of subdivide (distance from original vertex along the edge)
  160. // p3: Number, amount of extrude    
  161.  
  162. R3SUBDIVM_EXTRUDEVERTEX = 1235017;
  163.  
  164. function mR3SUBDIVM_EXTRUDEVERTEX(p1, p3) {
  165.   DoA2(this.r3obj, 1235017, p1, R3TID_FLOAT, 0, p3, R3TID_FLOAT, 0);
  166. }
  167.  
  168. // Description: Merges the selected subdivision objects into one.
  169. // p1: Boolean, save faceids
  170. // p3: Object[], null terminated array of objects to be merged    
  171.  
  172. R3SUBDIVM_MERGEOBJECTS = 1235018;
  173.  
  174. function mR3SUBDIVM_MERGEOBJECTS(p1, p3) {
  175.   DoA2(this.r3obj, 1235018, p1, R3TID_BOOLEAN, 0, p3, R3TID_OBJECT, R3TNF_ARRAY);
  176. }
  177.  
  178. // Description: Hides the selected faces.
  179.  
  180. R3SUBDIVM_HIDESELECTEDFACES = 1235019;
  181.  
  182. function mR3SUBDIVM_HIDESELECTEDFACES() {
  183.   DoA(this.r3obj, 1235019, 0, R3TID_INTEGER, 0);
  184. }
  185.  
  186. // Description: Un-hides all faces.
  187.  
  188. R3SUBDIVM_SHOWALLFACES = 1235020;
  189.  
  190. function mR3SUBDIVM_SHOWALLFACES() {
  191.   DoA(this.r3obj, 1235020, 0, R3TID_INTEGER, 0);
  192. }
  193.  
  194. // Description: Connects two selected edges with a new face.
  195.  
  196. R3SUBDIVM_CONNECTEDGES = 1235021;
  197.  
  198. function mR3SUBDIVM_CONNECTEDGES() {
  199.   DoA(this.r3obj, 1235021, 0, R3TID_INTEGER, 0);
  200. }
  201.  
  202. // Description: Transforms selected faces.
  203. // p1: r3Vect, the components are used to define: r - amount of rotation s - scale
  204. //      factor t - amount of translation
  205. // p2: Integer, normal option, either R3SDSTRANSFFACENORMALOPT_FACE or R3SDSTRANSFFACENORMALOPT_GROUP
  206. // p3: Tag[], tag list containing R3SUBDIVA_TransformCenter, R3SUBDIVA_TransformNormal, R3SUBDIVA_ScaleDirection    
  207.  
  208. R3SUBDIVM_TRANSFORMFACE = 1235022;
  209.  
  210. function mR3SUBDIVM_TRANSFORMFACE(p1, p2, p3) {
  211.   Do3(this.r3obj, 1235022, p1, R3TID_VECTOR, 0, p2, R3TID_INTEGER, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  212. }
  213.  
  214. // Description: Copies the the faces and connects the edges.
  215.  
  216. R3SUBDIVM_DUPLICATEANDCONNEC = 1235023;
  217.  
  218. function mR3SUBDIVM_DUPLICATEANDCONNEC() {
  219.   DoA(this.r3obj, 1235023, 0, R3TID_INTEGER, 0);
  220. }
  221.  
  222. // Description: Bevels selected vertices
  223. // p3: Number, percentage of bevel (distance from original vertex along the edge)    
  224.  
  225. R3SUBDIVM_BEVELVERTICES = 1235024;
  226.  
  227. function mR3SUBDIVM_BEVELVERTICES(p3) {
  228.   DoA(this.r3obj, 1235024, p3, R3TID_FLOAT, 0);
  229. }
  230.  
  231. // Description: Bevels selected edges
  232. // p3: Number, percentage of bevel (distance from original vertex along the edge)    
  233.  
  234. R3SUBDIVM_BEVELEDGES = 1235025;
  235.  
  236. function mR3SUBDIVM_BEVELEDGES(p3) {
  237.   DoA(this.r3obj, 1235025, p3, R3TID_FLOAT, 0);
  238. }
  239.  
  240. // Description: Converts a face to trisets
  241. // Returns: Integer, number of resulting triset faces
  242. // p2: r3Vect, vertices
  243. // p3: Tag[], attributes R3SUBDIVA_TrisetFace, R3SUBDIVA_KeepAllPoints, R3SUBDIVA_UVCoords, R3SUBDIVA_OriginalIndices.    
  244.  
  245. R3SUBDIVCM_FACETOTRISETS = 1235026;
  246.  
  247. function mR3SUBDIVCM_FACETOTRISETS(p2, p3) {
  248.   return   Do3(this.r3obj, 1235026, 0, R3TID_INTEGER, 0, p2, R3TID_VECTOR, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  249. }
  250.  
  251. // Description: Flips the normals of the selected faces by changing the    * order in which the
  252. //      vertices are referenced.
  253. // p3: Boolean, regions flag. If set, flips opposing faces in each selection region.    
  254.  
  255. R3SUBDIVM_FLIPSELECTEDFACES = 1235027;
  256.  
  257. function mR3SUBDIVM_FLIPSELECTEDFACES(p3) {
  258.   DoA(this.r3obj, 1235027, p3, R3TID_BOOLEAN, 0);
  259. }
  260.  
  261. // Description: Add new uvw channel
  262. // Returns: Object, NULL if failed
  263. // p3: Tag[], R3SUBDIVA_WrapU, R3SUBDIVA_WrapV, R3SUBDIVA_UVWrapMin, R3SUBDIVA_UVWrapMax, R3SUBDIVA_UVCoords    
  264.  
  265. R3SUBDIVM_ADDUVWCHANNEL = 1235028;
  266.  
  267. function mR3SUBDIVM_ADDUVWCHANNEL(p3) {
  268.   return   Do(this.r3obj, 1235028, p3, R3TID_TAG, R3TNF_ARRAY);
  269. }
  270.  
  271. // Description: Delete uvw channel
  272. // Returns: Boolean, NULL if channel was not found
  273. // p3: String, name of the channel to be deleted    
  274.  
  275. R3SUBDIVM_DELUVWCHANNEL = 1235029;
  276.  
  277. function mR3SUBDIVM_DELUVWCHANNEL(p3) {
  278.   return   DoA(this.r3obj, 1235029, p3, R3TID_STRING, 0);
  279. }
  280.  
  281. // Description: merges selected edges (only if topology does not change).
  282.  
  283. R3SUBDIVM_MERGEEDGES = 1235030;
  284.  
  285. function mR3SUBDIVM_MERGEEDGES() {
  286.   DoA(this.r3obj, 1235030, 0, R3TID_INTEGER, 0);
  287. }
  288.  
  289. // Description: destroys faces.
  290. // p3: Boolean, if TRUE vertices that become orphan are not deleted.    
  291.  
  292. R3SUBDIVM_DESTROYFACE = 1235031;
  293.  
  294. function mR3SUBDIVM_DESTROYFACE(p3) {
  295.   DoA(this.r3obj, 1235031, p3, R3TID_BOOLEAN, 0);
  296. }
  297.  
  298. // Description: Merges the selected subdivision objects into one.    * All vertices and faces of the first
  299. //      selected object    * and selected vertices and selected faces of the other * selected objects are
  300. //      merged.
  301. // p3: Object[], null terminated array of objects to be merged    
  302.  
  303. R3SUBDIVM_MERGEOBJECTSSELECT = 1235032;
  304.  
  305. function mR3SUBDIVM_MERGEOBJECTSSELECT(p3) {
  306.   DoA(this.r3obj, 1235032, p3, R3TID_OBJECT, R3TNF_ARRAY);
  307. }
  308.  
  309. // Description: Converts polygonal SDS to trisets.
  310. // Returns: Boolean, TRUE if successfull
  311. // p3: Integer[], returns the number of faces.
  312.  
  313. R3SUBDIVM_POLYGONALTOTRISETS = 1235033;
  314.  
  315. function mR3SUBDIVM_POLYGONALTOTRISETS(p3) {
  316.   return   DoA(this.r3obj, 1235033, p3, R3TID_INTEGER, R3TNF_ARRAY);
  317. }
  318.  
  319. // Description: Converts smooth SDS to trisets.
  320. // Returns: Boolean, TRUE if successfull
  321. // p3: Integer[], returns the number of faces.
  322.  
  323. R3SUBDIVM_SMOOTHTOTRISETS = 1235034;
  324.  
  325. function mR3SUBDIVM_SMOOTHTOTRISETS(p3) {
  326.   return   DoA(this.r3obj, 1235034, p3, R3TID_INTEGER, R3TNF_ARRAY);
  327. }
  328.  
  329. // Description: Divides the selected faces to triangles. Uses the face center to divide.
  330. // Returns: Boolean, TRUE if successfull
  331. // p3: Boolean, if TRUE processes all faces    
  332.  
  333. R3SUBDIVM_SELECTEDFACESTOTRI = 1235035;
  334.  
  335. function mR3SUBDIVM_SELECTEDFACESTOTRI(p3) {
  336.   return   DoA(this.r3obj, 1235035, p3, R3TID_BOOLEAN, 0);
  337. }
  338.  
  339. // Description: Divides the selected faces to quads. Uses the face center to divide.
  340. // Returns: Boolean, TRUE if successfull
  341. // p3: Boolean, if TRUE processes all faces    
  342.  
  343. R3SUBDIVM_SELECTEDFACESTOQUA = 1235036;
  344.  
  345. function mR3SUBDIVM_SELECTEDFACESTOQUA(p3) {
  346.   return   DoA(this.r3obj, 1235036, p3, R3TID_BOOLEAN, 0);
  347. }
  348.  
  349. // Description: If you have to manipulate the face array directly, call this to inform the
  350. //      sds object.
  351.  
  352. R3SUBDIVM_FACESCHANGEDFROMOU = 1235037;
  353.  
  354. function mR3SUBDIVM_FACESCHANGEDFROMOU() {
  355.   DoA(this.r3obj, 1235037, 0, R3TID_INTEGER, 0);
  356. }
  357.  
  358. // Description: Make tunnel between selected faces
  359. // Returns: Boolean, TRUE if successfull
  360.  
  361. R3SUBDIVM_MAKETUNNEL = 1235038;
  362.  
  363. function mR3SUBDIVM_MAKETUNNEL() {
  364.   return   DoA(this.r3obj, 1235038, 0, R3TID_INTEGER, 0);
  365. }
  366.  
  367. // Description: Subdivides selected regions.
  368. // Returns: Boolean, TRUE if successfull
  369.  
  370. R3SUBDIVM_SUBDIVIDELOCALLY = 1235039;
  371.  
  372. function mR3SUBDIVM_SUBDIVIDELOCALLY() {
  373.   return   DoA(this.r3obj, 1235039, 0, R3TID_INTEGER, 0);
  374. }
  375.  
  376. // Description: Calculates vertex normals.
  377. // Returns: Boolean, TRUE if successfull
  378. // p1: Boolean, if TRUE the normal lengths will be scaled according to the * face sizes,
  379. //      otherwise the normals will be normalized * (length 1.0).
  380. // p3: r3Vect, the vertex normals are returned here
  381.  
  382. R3SUBDIVM_CALCULATEVERTEXNOR = 1235040;
  383.  
  384. function mR3SUBDIVM_CALCULATEVERTEXNOR(p1, p3) {
  385.   return   DoA2(this.r3obj, 1235040, p1, R3TID_BOOLEAN, 0, p3, R3TID_VECTOR, 0);
  386. }
  387.  
  388. // Description: Moves the selected faces along vertex normals.
  389. // p1: Number, amount of translation
  390. // p3: r3Vect, direction    
  391.  
  392. R3SUBDIVM_MOVEVERTEXONNORMAL = 1235041;
  393.  
  394. function mR3SUBDIVM_MOVEVERTEXONNORMAL(p1, p3) {
  395.   DoA2(this.r3obj, 1235041, p1, R3TID_FLOAT, 0, p3, R3TID_VECTOR, 0);
  396. }
  397.  
  398. // Description: Invalidates internal smooth object used for evaluating the * SDS geometry
  399.  
  400. R3SUBDIVM_INVALIDATESMOOTHOB = 1235042;
  401.  
  402. function mR3SUBDIVM_INVALIDATESMOOTHOB() {
  403.   DoA(this.r3obj, 1235042, 0, R3TID_INTEGER, 0);
  404. }
  405.  
  406. // Description: Calculates edge centers and normals.
  407. // Returns: Boolean, TRUE if successfull
  408. // p1: r3Vect, the edge centers are returned here
  409. // p2: Boolean, if TRUE the normal lengths will be scaled according to the * edge lengths,
  410. //      otherwise the normals will be normalized * (length 1.0).
  411. // p3: r3Vect, the edge normals are returned here    
  412.  
  413. R3SUBDIVM_CALCULATEEDGECENTE = 1235043;
  414.  
  415. function mR3SUBDIVM_CALCULATEEDGECENTE(p1, p2, p3) {
  416.   return   DoA3(this.r3obj, 1235043, p1, R3TID_VECTOR, 0, p2, R3TID_BOOLEAN, 0, p3, R3TID_VECTOR, 0);
  417. }
  418.  
  419. // Description: Transforms selected edges.
  420. // p1: r3Vect, the components are used to define: r - amount of rotation s - scale
  421. //      factor t - amount of translation
  422. // p2: Integer, normal option, either R3SDSTRANSFFACENORMALOPT_FACE or R3SDSTRANSFFACENORMALOPT_GROUP
  423. // p3: Tag[], tag list containing R3SUBDIVA_TransformCenter, R3SUBDIVA_TransformNormal    
  424.  
  425. R3SUBDIVM_TRANSFORMEDGE = 1235044;
  426.  
  427. function mR3SUBDIVM_TRANSFORMEDGE(p1, p2, p3) {
  428.   Do3(this.r3obj, 1235044, p1, R3TID_VECTOR, 0, p2, R3TID_INTEGER, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  429. }
  430.  
  431. // Description: Selects faces that have edges where more than two faces connect.
  432.  
  433. R3SUBDIVM_SELECTINVALIDFACES = 1235045;
  434.  
  435. function mR3SUBDIVM_SELECTINVALIDFACES() {
  436.   DoA(this.r3obj, 1235045, 0, R3TID_INTEGER, 0);
  437. }
  438.  
  439. // Description: Smoothens the normals of the selected vertices,
  440.  
  441. R3SUBDIVM_SMOOTHENVERTEXNORM = 1235046;
  442.  
  443. function mR3SUBDIVM_SMOOTHENVERTEXNORM() {
  444.   DoA(this.r3obj, 1235046, 0, R3TID_INTEGER, 0);
  445. }
  446.  
  447. // Description: Smoothens the normals of the selected vertices,
  448.  
  449. R3SUBDIVM_FLATTENVERTEXNORMA = 1235047;
  450.  
  451. function mR3SUBDIVM_FLATTENVERTEXNORMA() {
  452.   DoA(this.r3obj, 1235047, 0, R3TID_INTEGER, 0);
  453. }
  454.  
  455.  
  456. R3SUBDIVM_SETPOINTWISEVALUE = 1235048;
  457.  
  458. function mR3SUBDIVM_SETPOINTWISEVALUE() {
  459.   DoA(this.r3obj, 1235048, 0, R3TID_INTEGER, 0);
  460. }
  461.  
  462.  
  463. R3SUBDIVM_GETPOINTWISEVALUE = 1235049;
  464.  
  465. function mR3SUBDIVM_GETPOINTWISEVALUE() {
  466.   DoA(this.r3obj, 1235049, 0, R3TID_INTEGER, 0);
  467. }
  468.  
  469. // Description: add pointwise attribute
  470.  
  471. R3SUBDIVM_ADDPOINTWISEATTRIB = 1235050;
  472.  
  473. function mR3SUBDIVM_ADDPOINTWISEATTRIB() {
  474.   DoA(this.r3obj, 1235050, 0, R3TID_INTEGER, 0);
  475. }
  476.  
  477. // Description: remove pointwise attribute
  478.  
  479. R3SUBDIVM_REMOVEPOINTWISEATT = 1235051;
  480.  
  481. function mR3SUBDIVM_REMOVEPOINTWISEATT() {
  482.   DoA(this.r3obj, 1235051, 0, R3TID_INTEGER, 0);
  483. }
  484.  
  485. // Returns: Number, weights
  486.  
  487. R3SUBDIVM_GETWEIGHTS = 1235052;
  488.  
  489. function mR3SUBDIVM_GETWEIGHTS() {
  490.   return   DoA(this.r3obj, 1235052, 0, R3TID_INTEGER, 0);
  491. }
  492.  
  493. // Description: Translate the weights of the selected vertices.
  494. // p1: Boolean, if true, p3 translates the current weight. Otherwise p3 is taken as new absolute
  495. //      weight for the selected vertices.
  496. // p3: Number, abs/rel weight    
  497.  
  498. R3SUBDIVM_CHANGEWEIGHTS = 1235053;
  499.  
  500. function mR3SUBDIVM_CHANGEWEIGHTS(p1, p3) {
  501.   DoA2(this.r3obj, 1235053, p1, R3TID_BOOLEAN, 0, p3, R3TID_FLOAT, 0);
  502. }
  503.  
  504. // Description: Converts selected triangular faces to quads.
  505.  
  506. R3SUBDIVM_TRIANGLESTOQUADS = 1235055;
  507.  
  508. function mR3SUBDIVM_TRIANGLESTOQUADS() {
  509.   DoA(this.r3obj, 1235055, 0, R3TID_INTEGER, 0);
  510. }
  511.  
  512. // p3: Integer, iterations    
  513.  
  514. R3SUBDIVM_INVERT = 1235056;
  515.  
  516. function mR3SUBDIVM_INVERT(p3) {
  517.   DoA(this.r3obj, 1235056, p3, R3TID_INTEGER, 0);
  518. }
  519.  
  520. // Description: Describes the surface geometry of SDS object by repeated calls to given hook.    * The
  521. //      actions are the same as when sending PRIMM_RENDERSURFACES to the sds object. * The patches
  522. //      are described using the tags of the selected surface type. * See r3sbs3.h, r3sbili.h and
  523. //      r3stri.h (also r3frsurf.h for info about pointwise attributes). * For example, if render type is
  524. //      smoothen to triangles, hook is called as * (*Hook)(R3CLID_STRIANGLE, hookdata, tags), * tags = R3STRIA_Points,
  525. //      vertexarrayof3, * R3STRIA_Normals, normalarrayof3, * R3FRSURFA_PointAttrs, pa_as_defined_in_r3frsurf_h, * R3TAG_END); *
  526. // p3: Object, any appropriate callback context data    
  527.  
  528. R3SUBDIVM_RENDERPATCHES = 1235057;
  529.  
  530. function mR3SUBDIVM_RENDERPATCHES(p3) {
  531.   DoA(this.r3obj, 1235057, p3, R3TID_OBJECT, 0);
  532. }
  533.  
  534. // Description: Sets the sharpness of the selected edges
  535. // p3: Integer, sharpness (0 == rounded, 1 == semisharp, 2 == sharp, * 3 == free,
  536. //      defined by edge rounding    
  537.  
  538. R3SUBDIVM_SETSELECTEDEDGESHA = 1235058;
  539.  
  540. function mR3SUBDIVM_SETSELECTEDEDGESHA(p3) {
  541.   DoA(this.r3obj, 1235058, p3, R3TID_INTEGER, 0);
  542. }
  543.  
  544. // Description: Gets the sharpness of the specified edge
  545. // p1: Integer, edge index
  546. // p3: Integer[], returns sharpness    
  547.  
  548. R3SUBDIVM_GETEDGESHARPNESS = 1235059;
  549.  
  550. function mR3SUBDIVM_GETEDGESHARPNESS(p1, p3) {
  551.   DoA2(this.r3obj, 1235059, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, R3TNF_ARRAY);
  552. }
  553.  
  554. // Description: Sets the sharpness of the selected vertices
  555. // p3: Integer, sharpness (0 == rounded, 1 == semisharp, 2 == sharp, 3 == free    
  556.  
  557. R3SUBDIVM_SETSELECTEDVERTEXS = 1235060;
  558.  
  559. function mR3SUBDIVM_SETSELECTEDVERTEXS(p3) {
  560.   DoA(this.r3obj, 1235060, p3, R3TID_INTEGER, 0);
  561. }
  562.  
  563. // Description: Gets the sharpness of the specified vertex
  564. // p1: Integer, vertex index
  565. // p3: Integer[], returns sharpness    
  566.  
  567. R3SUBDIVM_GETVERTEXSHARPNESS = 1235061;
  568.  
  569. function mR3SUBDIVM_GETVERTEXSHARPNESS(p1, p3) {
  570.   DoA2(this.r3obj, 1235061, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, R3TNF_ARRAY);
  571. }
  572.  
  573. // Description: Creates/frees list of unique edges.
  574. // p3: r3List, list containing unique edges    
  575.  
  576. R3SUBDIVM_FREEEDGELIST = 1235063;
  577.  
  578. function mR3SUBDIVM_FREEEDGELIST(p3) {
  579.   DoA(this.r3obj, 1235063, p3, R3TID_LIST, 0);
  580. }
  581.  
  582. // Description: Sets the rounding of the selected edges
  583. // p1: Boolean, cumulative
  584. // p3: Number, rounding    
  585.  
  586. R3SUBDIVM_SETSELECTEDEDGEROU = 1235064;
  587.  
  588. function mR3SUBDIVM_SETSELECTEDEDGEROU(p1, p3) {
  589.   DoA2(this.r3obj, 1235064, p1, R3TID_BOOLEAN, 0, p3, R3TID_FLOAT, 0);
  590. }
  591.  
  592. // Description: Gets the rounding of the specified edge
  593. // p1: Integer, edge index
  594. // p3: Number, returns rounding    
  595.  
  596. R3SUBDIVM_GETEDGEROUNDING = 1235065;
  597.  
  598. function mR3SUBDIVM_GETEDGEROUNDING(p1, p3) {
  599.   DoA2(this.r3obj, 1235065, p1, R3TID_INTEGER, 0, p3, R3TID_FLOAT, 0);
  600. }
  601.  
  602. // Description: Joins edges of separate faces when the edges are near enough each other
  603. // p3: Number, distance
  604.  
  605. R3SUBDIVM_JOINFACES = 1235066;
  606.  
  607. function mR3SUBDIVM_JOINFACES(p3) {
  608.   DoA(this.r3obj, 1235066, p3, R3TID_FLOAT, 0);
  609. }
  610.  
  611. // Description: Returns pointwise channel data
  612. // Returns: Object, channel data
  613.  
  614. R3SUBDIVM_GETPOINTWISECHANNE = 1235067;
  615.  
  616. function mR3SUBDIVM_GETPOINTWISECHANNE() {
  617.   return   DoA(this.r3obj, 1235067, 0, R3TID_INTEGER, 0);
  618. }
  619.  
  620. // Description: Fetch orientation of the given face.
  621. // p1: Integer, index of the face
  622. // p3: r3Coordsys, space of the face    
  623.  
  624. R3SUBDIVM_GETFACESPACE = 1235070;
  625.  
  626. function mR3SUBDIVM_GETFACESPACE(p1, p3) {
  627.   DoA2(this.r3obj, 1235070, p1, R3TID_INTEGER, 0, p3, R3TID_COORDSYS, 0);
  628. }
  629.  
  630. // Description: Fetch uvw channel attributes
  631. // Returns: Boolean, true if uvw channel was found
  632. // p1: Integer, channelname
  633. // p3: Tag[], R3SUBDIVA_WrapU, R3SUBDIVA_WrapV, R3SUBDIVA_UVWrapMin, R3SUBDIVA_UVWrapMax, R3SUBDIVA_UVCoords
  634.  
  635. R3SUBDIVM_GETUVWATTRS = 1235071;
  636.  
  637. function mR3SUBDIVM_GETUVWATTRS(p1, p3) {
  638.   return   Do2(this.r3obj, 1235071, p1, R3TID_BYTE, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  639. }
  640.  
  641. // Description: Fetch custom channel attributes. R3SUBDIVA_ChannelData points to an array of channel values associated with
  642. //      control points. ChannelItemSize specifies the size of items in R3FLOAT's.
  643. // Returns: Boolean, true if the given channel was found
  644. // p1: Integer, channelname
  645. // p3: Tag[], R3SUBDIVA_ChannelData, R3SUBDIVA_ChannelUniqueId, R3SUBDIVA_ChannelType, R3SUBDIVA_ChannelItemSize
  646.  
  647. R3SUBDIVM_GETCHANNELATTRS = 1235072;
  648.  
  649. function mR3SUBDIVM_GETCHANNELATTRS(p1, p3) {
  650.   return   Do2(this.r3obj, 1235072, p1, R3TID_BYTE, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  651. }
  652.  
  653.  
  654. R3SUBDIVM_ALLOCPOINTS = 1235076;
  655.  
  656. function mR3SUBDIVM_ALLOCPOINTS() {
  657.   DoA(this.r3obj, 1235076, 0, R3TID_INTEGER, 0);
  658. }
  659.  
  660. // Description: Copies a vertex to another vertex.
  661. // p1: Integer, to
  662. // p3: Integer, from    
  663.  
  664. R3SUBDIVM_ASSIGNVERTEX = 1235077;
  665.  
  666. function mR3SUBDIVM_ASSIGNVERTEX(p1, p3) {
  667.   DoA2(this.r3obj, 1235077, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, 0);
  668. }
  669.  
  670. // Description: Creates a face to given vertices.
  671. // p1: Integer, vertex count
  672. // p3: Integer[], vertex indices    
  673.  
  674. R3SUBDIVM_MAKEFACE = 1235079;
  675.  
  676. function mR3SUBDIVM_MAKEFACE(p1, p3) {
  677.   DoA2(this.r3obj, 1235079, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, R3TNF_ARRAY);
  678. }
  679.  
  680. // Description: Attach material to selected faces.
  681. // p3: String, material name    
  682.  
  683. R3SUBDIVM_ATTACHMATERIALTOSE = 1235080;
  684.  
  685. function mR3SUBDIVM_ATTACHMATERIALTOSE(p3) {
  686.   DoA(this.r3obj, 1235080, p3, R3TID_STRING, 0);
  687. }
  688.  
  689. // Description: Detach material from selected faces.
  690. // p3: String, material name    
  691.  
  692. R3SUBDIVM_DETACHMATERIALFROM = 1235081;
  693.  
  694. function mR3SUBDIVM_DETACHMATERIALFROM(p3) {
  695.   DoA(this.r3obj, 1235081, p3, R3TID_STRING, 0);
  696. }
  697.  
  698. // Description: Returns a pointer to face material list containing R3FACEMATERIAL structures or a NULL pointer
  699. //      if no materials are defined for the face.
  700. // p3: Integer, face index    
  701.  
  702. R3SUBDIVM_GETFACEMATERIALLIS = 1235082;
  703.  
  704. function mR3SUBDIVM_GETFACEMATERIALLIS(p3) {
  705.   DoA(this.r3obj, 1235082, p3, R3TID_INTEGER, 0);
  706. }
  707.  
  708. // Description: private    
  709.  
  710. R3SUBDIVM_OPTIMIZEFACES = 1235083;
  711.  
  712. function mR3SUBDIVM_OPTIMIZEFACES() {
  713.   DoA(this.r3obj, 1235083, 0, R3TID_INTEGER, 0);
  714. }
  715.  
  716. // p1: Integer, face index
  717. // p2: Integer, index in face
  718. // p3: Integer, index to vertices
  719.  
  720. R3SUBDIVM_INSERTVERTEXTOFACE = 1235089;
  721.  
  722. function mR3SUBDIVM_INSERTVERTEXTOFACE(p1, p2, p3) {
  723.   DoA3(this.r3obj, 1235089, p1, R3TID_INTEGER, 0, p2, R3TID_INTEGER, 0, p3, R3TID_INTEGER, 0);
  724. }
  725.  
  726. // Description: Remove the given vertex from the specified face.
  727. // p1: Integer, face index
  728. // p2: Integer
  729. // p3: Integer, index in face
  730.  
  731. R3SUBDIVM_REMOVEVERTEXFROMFA = 1235090;
  732.  
  733. function mR3SUBDIVM_REMOVEVERTEXFROMFA(p1, p2, p3) {
  734.   DoA3(this.r3obj, 1235090, p1, R3TID_INTEGER, 0, p2, R3TID_INTEGER, 0, p3, R3TID_INTEGER, 0);
  735. }
  736.  
  737. // Description: Shows/hides the selected faces in UV editors.
  738.  
  739. R3SUBDIVM_SETSELECTEDFACESUV = 1235091;
  740.  
  741. function mR3SUBDIVM_SETSELECTEDFACESUV() {
  742.   DoA(this.r3obj, 1235091, 0, R3TID_INTEGER, 0);
  743. }
  744.  
  745. // Description: Shows/hides all faces in UV editors.
  746.  
  747. R3SUBDIVM_SETALLFACESUVVISIB = 1235092;
  748.  
  749. function mR3SUBDIVM_SETALLFACESUVVISIB() {
  750.   DoA(this.r3obj, 1235092, 0, R3TID_INTEGER, 0);
  751. }
  752.  
  753. // Description: sets face material UVs for a face
  754. // p1: Integer, face index
  755. // p2: String, material name
  756. // p3: r3Vect, array of UVs, one for each vertex of the face    
  757.  
  758. R3SUBDIVM_SETFACEMATERIALUV = 1235093;
  759.  
  760. function mR3SUBDIVM_SETFACEMATERIALUV(p1, p2, p3) {
  761.   DoA3(this.r3obj, 1235093, p1, R3TID_INTEGER, 0, p2, R3TID_STRING, 0, p3, R3TID_VECTOR, 0);
  762. }
  763.  
  764. // Description: Detach material from all faces.
  765. // p3: String, material name    
  766.  
  767. R3SUBDIVM_DETACHMATERIALFROM = 1235094;
  768.  
  769. function mR3SUBDIVM_DETACHMATERIALFROM(p3) {
  770.   DoA(this.r3obj, 1235094, p3, R3TID_STRING, 0);
  771. }
  772.  
  773. // Description: Fetch the number of vertices in the given face.
  774. // Returns: Integer, number of vertices
  775. // p3: Integer, face index    
  776.  
  777. R3SUBDIVM_GETVERTEXCOUNTOFFA = 1235095;
  778.  
  779. function mR3SUBDIVM_GETVERTEXCOUNTOFFA(p3) {
  780.   return   DoA(this.r3obj, 1235095, p3, R3TID_INTEGER, 0);
  781. }
  782.  
  783. // Description: Interpolates pointwise values for a vertex
  784. // p1: Integer, index of the vertex for which to interpolate pointwise values
  785. // p2: Number, interpolation factor
  786. // p3: Tag[], tag list containing R3RA_P0, R3RA_P1 - the indices of the the vertices to interpolate
  787. //      from
  788.  
  789. R3SUBDIVM_INTERPOLATEPOINTWI = 1235097;
  790.  
  791. function mR3SUBDIVM_INTERPOLATEPOINTWI(p1, p2, p3) {
  792.   Do3(this.r3obj, 1235097, p1, R3TID_INTEGER, 0, p2, R3TID_FLOAT, 0, p3, R3TID_TAG, R3TNF_ARRAY);
  793. }
  794.  
  795. // Description: Divides given faces between given vertices
  796. // p1: Integer, number of groups consisting of a face index and a pair indices
  797. // p2: Integer[], array of face indices
  798. // p3: Integer[], array of vertex indices arranged in pairs
  799.  
  800. R3SUBDIVM_DIVIDEFACESBYINDIC = 1235098;
  801.  
  802. function mR3SUBDIVM_DIVIDEFACESBYINDIC(p1, p2, p3) {
  803.   DoA3(this.r3obj, 1235098, p1, R3TID_INTEGER, 0, p2, R3TID_INTEGER, R3TNF_ARRAY, p3, R3TID_INTEGER, R3TNF_ARRAY);
  804. }
  805.  
  806. // Description: Calculates face centers and normals.
  807. // Returns: Boolean, TRUE if successfull
  808. // p1: r3Vect, the face centers are returned here
  809. // p2: Integer, space
  810. // p3: r3Vect, the face normals are returned here    
  811.  
  812. R3SUBDIVM_CALCULATEFACECENTE = 1235099;
  813.  
  814. function mR3SUBDIVM_CALCULATEFACECENTE(p1, p2, p3) {
  815.   return   DoA3(this.r3obj, 1235099, p1, R3TID_VECTOR, 0, p2, R3TID_INTEGER, 0, p3, R3TID_VECTOR, 0);
  816. }
  817.  
  818. // Description: Copies the the faces (does not connect the edges).
  819.  
  820. R3SUBDIVM_DUPLICATE = 1235100;
  821.  
  822. function mR3SUBDIVM_DUPLICATE() {
  823.   DoA(this.r3obj, 1235100, 0, R3TID_INTEGER, 0);
  824. }
  825.  
  826. // Description: Copies the selected parts of the SDS object into a new object.
  827. // Returns: Object, sds object containing the selected parts
  828.  
  829. R3SUBDIVM_COPYSELECTED = 1235101;
  830.  
  831. function mR3SUBDIVM_COPYSELECTED() {
  832.   return R3ToJS(  DoA(this.r3obj, 1235101, 0, R3TID_INTEGER, 0));
  833. }
  834.  
  835. // Description: Set vertex count and vertex indices for the given face.
  836. // Returns: Boolean, true if succeeded
  837. // p1: Integer, index of the face to be defined
  838. // p2: Integer, number of vertices
  839. // p3: Integer[], array of vertex indices    
  840.  
  841. R3SUBDIVM_SETFACE = 1235105;
  842.  
  843. function mR3SUBDIVM_SETFACE(p1, p2, p3) {
  844.   return   DoA3(this.r3obj, 1235105, p1, R3TID_INTEGER, 0, p2, R3TID_INTEGER, 0, p3, R3TID_INTEGER, R3TNF_ARRAY);
  845. }
  846.  
  847. // Description: Fill holes
  848. // Returns: Boolean, true if succeeded
  849. // p1: Boolean, selected, if set only holes in selected regions will be filled
  850. // p3: Integer, maximum number of edges in a hole to fill    
  851.  
  852. R3SUBDIVM_FILLHOLES = 1235106;
  853.  
  854. function mR3SUBDIVM_FILLHOLES(p1, p3) {
  855.   return   DoA2(this.r3obj, 1235106, p1, R3TID_BOOLEAN, 0, p3, R3TID_INTEGER, 0);
  856. }
  857.  
  858. // Description: Unwraps the current UV channel using the subdivision algorithm to the UV values.
  859. // p3: Integer, subdivision iterations 
  860.  
  861. R3SUBDIVM_UNWRAPUV = 1235107;
  862.  
  863. function mR3SUBDIVM_UNWRAPUV(p3) {
  864.   DoA(this.r3obj, 1235107, p3, R3TID_INTEGER, 0);
  865. }
  866.  
  867. // Description: Calculates default values for the current UV channel using sphere projection.
  868.  
  869. R3SUBDIVM_DEFAULTUV = 1235108;
  870.  
  871. function mR3SUBDIVM_DEFAULTUV() {
  872.   DoA(this.r3obj, 1235108, 0, R3TID_INTEGER, 0);
  873. }
  874.  
  875. // Description: Deletes selected vertices that are not connected to any face.
  876.  
  877. R3SUBDIVM_DELETEORPHANVERTIC = 1235109;
  878.  
  879. function mR3SUBDIVM_DELETEORPHANVERTIC() {
  880.   DoA(this.r3obj, 1235109, 0, R3TID_INTEGER, 0);
  881. }
  882.  
  883. // Description: Low level set point method. The point is given in object space.    * The method
  884. //      doesn't generate R3MM_CHANGED nor call R3TTM_CHANGENIMATEDTAG.
  885. // Returns: Boolean, true if succeeded
  886. // p1: Integer, index
  887. // p3: r3Vect, point    
  888.  
  889. R3SUBDIVM_SETPOINTLOCAL = 1235110;
  890.  
  891. function mR3SUBDIVM_SETPOINTLOCAL(p1, p3) {
  892.   return   DoA2(this.r3obj, 1235110, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR, 0);
  893. }
  894.  
  895. // Description: Get point in object space
  896. // Returns: Boolean, true if succeeded
  897. // p1: Integer, index
  898. // p3: r3Vect, point    
  899.  
  900. R3SUBDIVM_GETPOINTLOCAL = 1235111;
  901.  
  902. function mR3SUBDIVM_GETPOINTLOCAL(p1, p3) {
  903.   return   DoA2(this.r3obj, 1235111, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR, 0);
  904. }
  905.  
  906. // Description: Returns next unique face id
  907. // Returns: Integer, face id
  908.  
  909. R3SUBDIVM_ALLOCFACEID = 1235112;
  910.  
  911. function mR3SUBDIVM_ALLOCFACEID() {
  912.   return   DoA(this.r3obj, 1235112, 0, R3TID_INTEGER, 0);
  913. }
  914.  
  915. // Description: Registers an object that will be notified when certain events occur
  916. // p2: Integer, event flags, see registernotify_flags below
  917. // p3: Integer, method to notify with    
  918.  
  919. R3SUBDIVM_REGISTERNOTIFY = 1235115;
  920.  
  921. function mR3SUBDIVM_REGISTERNOTIFY(p2, p3) {
  922.   DoA3(this.r3obj, 1235115, 0, R3TID_INTEGER, 0, p2, R3TID_INTEGER, 0, p3, R3TID_INTEGER, 0);
  923. }
  924.  
  925. // Description: Unregisters a notify object
  926.  
  927. R3SUBDIVM_UNREGISTERNOTIFY = 1235116;
  928.  
  929. function mR3SUBDIVM_UNREGISTERNOTIFY() {
  930.   DoA(this.r3obj, 1235116, 0, R3TID_INTEGER, 0);
  931. }
  932.  
  933. // Description: Unwraps the geometry using the subdivision algorithm.
  934. // p3: Integer, subdivision iterations 
  935.  
  936. R3SUBDIVM_UNWRAPGEOMETRY = 1235118;
  937.  
  938. function mR3SUBDIVM_UNWRAPGEOMETRY(p3) {
  939.   DoA(this.r3obj, 1235118, p3, R3TID_INTEGER, 0);
  940. }
  941.  
  942. // Description: Get face center and normal in object space.
  943. // p1: Integer, face index
  944. // p2: r3Vect, face center
  945. // p3: r3Vect, face normal 
  946.  
  947. R3SUBDIVM_GETFACECENTERANDNO = 1235122;
  948.  
  949. function mR3SUBDIVM_GETFACECENTERANDNO(p1, p2, p3) {
  950.   DoA3(this.r3obj, 1235122, p1, R3TID_INTEGER, 0, p2, R3TID_VECTOR, 0, p3, R3TID_VECTOR, 0);
  951. }
  952.  
  953. // p3: String, face material name 
  954.  
  955. R3SUBDIVM_AUTOINITIALIZEFACE = 1235123;
  956.  
  957. function mR3SUBDIVM_AUTOINITIALIZEFACE(p3) {
  958.   DoA(this.r3obj, 1235123, p3, R3TID_STRING, 0);
  959. }
  960.  
  961. // p1: String, old face material name
  962. // p3: String, new face material name 
  963.  
  964. R3SUBDIVM_RENAMEFACEMATERIAL = 1235125;
  965.  
  966. function mR3SUBDIVM_RENAMEFACEMATERIAL(p1, p3) {
  967.   DoA2(this.r3obj, 1235125, p1, R3TID_STRING, 0, p3, R3TID_STRING, 0);
  968. }
  969.  
  970. // Description: return the maximum number of edges connecting to a vertex.
  971. // Returns: Integer, max connecting edge count
  972.  
  973. R3SUBDIVM_GETMAXEDGESPERVERT = 1235126;
  974.  
  975. function mR3SUBDIVM_GETMAXEDGESPERVERT() {
  976.   return   DoA(this.r3obj, 1235126, 0, R3TID_INTEGER, 0);
  977. }
  978.  
  979. // Description: Divides the selected faces to triangles using triangulation algorithm.
  980. // Returns: Boolean, TRUE if successfull
  981. // p1: Boolean, if TRUE excludes quad faces
  982. // p3: Boolean, if TRUE processes all faces (not only selected) except quads if p1 is TRUE    
  983.  
  984. R3SUBDIVM_SELECTEDFACESTOTRI = 1235127;
  985.  
  986. function mR3SUBDIVM_SELECTEDFACESTOTRI(p1, p3) {
  987.   return   DoA2(this.r3obj, 1235127, p1, R3TID_BOOLEAN, 0, p3, R3TID_BOOLEAN, 0);
  988. }
  989.  
  990. // Description: Welds two (selected) edge loops together by adding new faces into the gap
  991. // Returns: Boolean, TRUE if successfull
  992.  
  993. R3SUBDIVM_WELD = 1235128;
  994.  
  995. function mR3SUBDIVM_WELD() {
  996.   return   DoA(this.r3obj, 1235128, 0, R3TID_INTEGER, 0);
  997. }
  998.  
  999. // Description: Fetch face indices of given face.
  1000. // Returns: Integer, number of vertices in the face or NULL if the face was not found
  1001. // p1: Integer, index of the face
  1002. // p3: Integer[], memory buffer for the faces indices to be fetched. Use R3SUBDIVM_GETVERTEXCOUNTOFFACE    * method to fetch
  1003. //      the size for the buffer.    
  1004.  
  1005. R3SUBDIVM_GETFACE = 1235129;
  1006.  
  1007. function mR3SUBDIVM_GETFACE(p1, p3) {
  1008.   return   DoA2(this.r3obj, 1235129, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, R3TNF_ARRAY);
  1009. }
  1010.  
  1011. // Description: Flattens selected regions.
  1012. // Returns: Boolean, TRUE if successfull
  1013.  
  1014. R3SUBDIVM_FLATTEN = 1235130;
  1015.  
  1016. function mR3SUBDIVM_FLATTEN() {
  1017.   return   DoA(this.r3obj, 1235130, 0, R3TID_INTEGER, 0);
  1018. }
  1019.  
  1020. // Description: Sets point/edge creates by a threshold angle. Does not change already set creases. In
  1021. //      edit mode, obeys selection areas.
  1022. // Returns: Boolean, TRUE if successfull
  1023. // p1: Integer, flagbit1=1 -> set edge creases, flagbit2=2 -> set point creases. E.g. 3 = set
  1024. //      both crease types.
  1025. // p3: Number, angle in radians    
  1026.  
  1027. R3SUBDIVM_AUTOCREASES = 1235131;
  1028.  
  1029. function mR3SUBDIVM_AUTOCREASES(p1, p3) {
  1030.   return   DoA2(this.r3obj, 1235131, p1, R3TID_INTEGER, 0, p3, R3TID_FLOAT, 0);
  1031. }
  1032.  
  1033. // Description: Fetch the vertex index of give face point.
  1034. // Returns: Integer, vertex index, or -1 if given face point was not found.
  1035. // p1: Integer, face index
  1036. // p3: Integer, face point    
  1037.  
  1038. R3SUBDIVM_GETFACEINDEX = 1235132;
  1039.  
  1040. function mR3SUBDIVM_GETFACEINDEX(p1, p3) {
  1041.   return   DoA2(this.r3obj, 1235132, p1, R3TID_INTEGER, 0, p3, R3TID_INTEGER, 0);
  1042. }
  1043.  
  1044.  
  1045.  
  1046.  
  1047. R3SUBDIVA_PointCount = 1235500;
  1048. function SetR3SUBDIVA_PointCount(value) {
  1049.   R3Set(this.r3obj, R3SUBDIVA_PointCount, value, R3TID_INTEGER, 0); 
  1050. }
  1051.  
  1052. function GetR3SUBDIVA_PointCount() {
  1053.   return R3Get(this.r3obj, R3SUBDIVA_PointCount, R3TID_INTEGER, 0); 
  1054. }
  1055.  
  1056. R3SUBDIVA_Points = 1235501;
  1057. function SetR3SUBDIVA_Points(value) {
  1058.   R3Set(this.r3obj, R3SUBDIVA_Points, value, R3TID_VECTOR, R3TNF_ARRAY); 
  1059. }
  1060.  
  1061. function GetR3SUBDIVA_Points() {
  1062.   return R3Get(this.r3obj, R3SUBDIVA_Points, R3TID_VECTOR, R3TNF_ARRAY); 
  1063. }
  1064.  
  1065. R3SUBDIVA_FaceCount = 1235502;
  1066. function SetR3SUBDIVA_FaceCount(value) {
  1067.   R3Set(this.r3obj, R3SUBDIVA_FaceCount, value, R3TID_INTEGER, 0); 
  1068. }
  1069.  
  1070. function GetR3SUBDIVA_FaceCount() {
  1071.   return R3Get(this.r3obj, R3SUBDIVA_FaceCount, R3TID_INTEGER, 0); 
  1072. }
  1073.  
  1074. R3SUBDIVA_Type = 1235504;
  1075. function SetR3SUBDIVA_Type(value) {
  1076.   R3Set(this.r3obj, R3SUBDIVA_Type, value, R3TID_INTEGER, 0); 
  1077. }
  1078.  
  1079. function GetR3SUBDIVA_Type() {
  1080.   return R3Get(this.r3obj, R3SUBDIVA_Type, R3TID_INTEGER, 0); 
  1081. }
  1082.  
  1083. R3SUBDIVA_SelectResolution = 1235505;
  1084. function SetR3SUBDIVA_SelectResolution(value) {
  1085.   R3Set(this.r3obj, R3SUBDIVA_SelectResolution, value, R3TID_INTEGER, 0); 
  1086. }
  1087.  
  1088. function GetR3SUBDIVA_SelectResolution() {
  1089.   return R3Get(this.r3obj, R3SUBDIVA_SelectResolution, R3TID_INTEGER, 0); 
  1090. }
  1091.  
  1092. R3SUBDIVA_EdgeCount = 1235509;
  1093. function GetR3SUBDIVA_EdgeCount() {
  1094.   return R3Get(this.r3obj, R3SUBDIVA_EdgeCount, R3TID_INTEGER, 0); 
  1095. }
  1096.  
  1097. R3SUBDIVA_UVCoords = 1235510;
  1098. function SetR3SUBDIVA_UVCoords(value) {
  1099.   R3Set(this.r3obj, R3SUBDIVA_UVCoords, value, R3TID_VECTOR, R3TNF_ARRAY); 
  1100. }
  1101.  
  1102. function GetR3SUBDIVA_UVCoords() {
  1103.   return R3Get(this.r3obj, R3SUBDIVA_UVCoords, R3TID_VECTOR, R3TNF_ARRAY); 
  1104. }
  1105.  
  1106. R3SUBDIVA_Quality = 1235511;
  1107. function SetR3SUBDIVA_Quality(value) {
  1108.   R3Set(this.r3obj, R3SUBDIVA_Quality, value, R3TID_INTEGER, 0); 
  1109. }
  1110.  
  1111. function GetR3SUBDIVA_Quality() {
  1112.   return R3Get(this.r3obj, R3SUBDIVA_Quality, R3TID_INTEGER, 0); 
  1113. }
  1114.  
  1115. R3SUBDIVA_CurrentUVName = 1235518;
  1116. function SetR3SUBDIVA_CurrentUVName(value) {
  1117.   R3Set(this.r3obj, R3SUBDIVA_CurrentUVName, value, R3TID_STRING, 0); 
  1118. }
  1119.  
  1120. function GetR3SUBDIVA_CurrentUVName() {
  1121.   return R3Get(this.r3obj, R3SUBDIVA_CurrentUVName, R3TID_STRING, 0); 
  1122. }
  1123.  
  1124. R3SUBDIVA_WrapU = 1235519;
  1125. function SetR3SUBDIVA_WrapU(value) {
  1126.   R3Set(this.r3obj, R3SUBDIVA_WrapU, value, R3TID_INTEGER, 0); 
  1127. }
  1128.  
  1129. function GetR3SUBDIVA_WrapU() {
  1130.   return R3Get(this.r3obj, R3SUBDIVA_WrapU, R3TID_INTEGER, 0); 
  1131. }
  1132.  
  1133. R3SUBDIVA_WrapV = 1235520;
  1134. function SetR3SUBDIVA_WrapV(value) {
  1135.   R3Set(this.r3obj, R3SUBDIVA_WrapV, value, R3TID_INTEGER, 0); 
  1136. }
  1137.  
  1138. function GetR3SUBDIVA_WrapV() {
  1139.   return R3Get(this.r3obj, R3SUBDIVA_WrapV, R3TID_INTEGER, 0); 
  1140. }
  1141.  
  1142. var R3SUBDIVA_ExtrudeSectionCount = 1235524; // Integer
  1143. var R3SUBDIVA_TransformCenter = 1235525; // r3Vect[]
  1144. var R3SUBDIVA_TransformNormal = 1235526; // r3Vect[]
  1145. var R3SUBDIVA_PointwiseChannel = 1235529; // Integer
  1146. var R3SUBDIVA_PointwiseID = 1235530; // Integer
  1147. var R3SUBDIVA_PointwiseName = 1235531; // String
  1148. var R3SUBDIVA_HasPointwiseColors = 1235532; // Boolean
  1149. R3SUBDIVA_Weights = 1235533;
  1150. function SetR3SUBDIVA_Weights(value) {
  1151.   R3Set(this.r3obj, R3SUBDIVA_Weights, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1152. }
  1153.  
  1154. function GetR3SUBDIVA_Weights() {
  1155.   return R3Get(this.r3obj, R3SUBDIVA_Weights, R3TID_FLOAT, R3TNF_ARRAY); 
  1156. }
  1157.  
  1158. R3SUBDIVA_FloatSize = 1235534;
  1159. function GetR3SUBDIVA_FloatSize() {
  1160.   return R3Get(this.r3obj, R3SUBDIVA_FloatSize, R3TID_INTEGER, 0); 
  1161. }
  1162.  
  1163. R3SUBDIVA_ColorSize = 1235535;
  1164. function GetR3SUBDIVA_ColorSize() {
  1165.   return R3Get(this.r3obj, R3SUBDIVA_ColorSize, R3TID_INTEGER, 0); 
  1166. }
  1167.  
  1168. R3SUBDIVA_PointwiseColor = 1235536;
  1169. function SetR3SUBDIVA_PointwiseColor(value) {
  1170.   R3Set(this.r3obj, R3SUBDIVA_PointwiseColor, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1171. }
  1172.  
  1173. function GetR3SUBDIVA_PointwiseColor() {
  1174.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseColor, R3TID_FLOAT, R3TNF_ARRAY); 
  1175. }
  1176.  
  1177. R3SUBDIVA_PointwiseTranspare = 1235537;
  1178. function SetR3SUBDIVA_PointwiseTranspare(value) {
  1179.   R3Set(this.r3obj, R3SUBDIVA_PointwiseTranspare, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1180. }
  1181.  
  1182. function GetR3SUBDIVA_PointwiseTranspare() {
  1183.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseTranspare, R3TID_FLOAT, R3TNF_ARRAY); 
  1184. }
  1185.  
  1186. R3SUBDIVA_PointwiseReflectio = 1235538;
  1187. function SetR3SUBDIVA_PointwiseReflectio(value) {
  1188.   R3Set(this.r3obj, R3SUBDIVA_PointwiseReflectio, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1189. }
  1190.  
  1191. function GetR3SUBDIVA_PointwiseReflectio() {
  1192.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseReflectio, R3TID_FLOAT, R3TNF_ARRAY); 
  1193. }
  1194.  
  1195. R3SUBDIVA_PointwiseAlpha = 1235539;
  1196. function SetR3SUBDIVA_PointwiseAlpha(value) {
  1197.   R3Set(this.r3obj, R3SUBDIVA_PointwiseAlpha, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1198. }
  1199.  
  1200. function GetR3SUBDIVA_PointwiseAlpha() {
  1201.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseAlpha, R3TID_FLOAT, R3TNF_ARRAY); 
  1202. }
  1203.  
  1204. R3SUBDIVA_PointwiseFade = 1235540;
  1205. function SetR3SUBDIVA_PointwiseFade(value) {
  1206.   R3Set(this.r3obj, R3SUBDIVA_PointwiseFade, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1207. }
  1208.  
  1209. function GetR3SUBDIVA_PointwiseFade() {
  1210.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseFade, R3TID_FLOAT, R3TNF_ARRAY); 
  1211. }
  1212.  
  1213. R3SUBDIVA_PointwiseIlluminat = 1235541;
  1214. function SetR3SUBDIVA_PointwiseIlluminat(value) {
  1215.   R3Set(this.r3obj, R3SUBDIVA_PointwiseIlluminat, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1216. }
  1217.  
  1218. function GetR3SUBDIVA_PointwiseIlluminat() {
  1219.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseIlluminat, R3TID_FLOAT, R3TNF_ARRAY); 
  1220. }
  1221.  
  1222. R3SUBDIVA_PointwiseMatSpaceC = 1235542;
  1223. function SetR3SUBDIVA_PointwiseMatSpaceC(value) {
  1224.   R3Set(this.r3obj, R3SUBDIVA_PointwiseMatSpaceC, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1225. }
  1226.  
  1227. function GetR3SUBDIVA_PointwiseMatSpaceC() {
  1228.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseMatSpaceC, R3TID_FLOAT, R3TNF_ARRAY); 
  1229. }
  1230.  
  1231. R3SUBDIVA_PointwiseOpticalTh = 1235543;
  1232. function SetR3SUBDIVA_PointwiseOpticalTh(value) {
  1233.   R3Set(this.r3obj, R3SUBDIVA_PointwiseOpticalTh, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1234. }
  1235.  
  1236. function GetR3SUBDIVA_PointwiseOpticalTh() {
  1237.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseOpticalTh, R3TID_FLOAT, R3TNF_ARRAY); 
  1238. }
  1239.  
  1240. R3SUBDIVA_PointwiseScope = 1235544;
  1241. function SetR3SUBDIVA_PointwiseScope(value) {
  1242.   R3Set(this.r3obj, R3SUBDIVA_PointwiseScope, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1243. }
  1244.  
  1245. function GetR3SUBDIVA_PointwiseScope() {
  1246.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseScope, R3TID_FLOAT, R3TNF_ARRAY); 
  1247. }
  1248.  
  1249. R3SUBDIVA_PointwiseVolumeSam = 1235545;
  1250. function SetR3SUBDIVA_PointwiseVolumeSam(value) {
  1251.   R3Set(this.r3obj, R3SUBDIVA_PointwiseVolumeSam, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1252. }
  1253.  
  1254. function GetR3SUBDIVA_PointwiseVolumeSam() {
  1255.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseVolumeSam, R3TID_FLOAT, R3TNF_ARRAY); 
  1256. }
  1257.  
  1258. R3SUBDIVA_InterpolateBoundar = 1235546;
  1259. function SetR3SUBDIVA_InterpolateBoundar(value) {
  1260.   R3Set(this.r3obj, R3SUBDIVA_InterpolateBoundar, value, R3TID_INTEGER, 0); 
  1261. }
  1262.  
  1263. function GetR3SUBDIVA_InterpolateBoundar() {
  1264.   return R3Get(this.r3obj, R3SUBDIVA_InterpolateBoundar, R3TID_INTEGER, 0); 
  1265. }
  1266.  
  1267. R3SUBDIVA_HasRoundings = 1235548;
  1268. function GetR3SUBDIVA_HasRoundings() {
  1269.   return R3Get(this.r3obj, R3SUBDIVA_HasRoundings, R3TID_INTEGER, 0); 
  1270. }
  1271.  
  1272. var R3SUBDIVA_ScaleDirection = 1235549; // r3Vect[]
  1273. R3SUBDIVA_CurrentFaceMateria = 1235550;
  1274. function SetR3SUBDIVA_CurrentFaceMateria(value) {
  1275.   R3Set(this.r3obj, R3SUBDIVA_CurrentFaceMateria, value, R3TID_STRING, 0); 
  1276. }
  1277.  
  1278. function GetR3SUBDIVA_CurrentFaceMateria() {
  1279.   return R3Get(this.r3obj, R3SUBDIVA_CurrentFaceMateria, R3TID_STRING, 0); 
  1280. }
  1281.  
  1282. R3SUBDIVA_ChannelList = 1235551;
  1283. function GetR3SUBDIVA_ChannelList() {
  1284.   return R3Get(this.r3obj, R3SUBDIVA_ChannelList, R3TID_LIST, R3TNF_ARRAY); 
  1285. }
  1286.  
  1287. var R3SUBDIVA_PointwiseData = 1235552; // Object
  1288. R3SUBDIVA_PointwiseUVCoords = 1235553;
  1289. function SetR3SUBDIVA_PointwiseUVCoords(value) {
  1290.   R3Set(this.r3obj, R3SUBDIVA_PointwiseUVCoords, value, R3TID_FLOAT, R3TNF_ARRAY); 
  1291. }
  1292.  
  1293. function GetR3SUBDIVA_PointwiseUVCoords() {
  1294.   return R3Get(this.r3obj, R3SUBDIVA_PointwiseUVCoords, R3TID_FLOAT, R3TNF_ARRAY); 
  1295. }
  1296.  
  1297. R3SUBDIVA_SelectFaceVertices = 1235556;
  1298. function SetR3SUBDIVA_SelectFaceVertices(value) {
  1299.   R3Set(this.r3obj, R3SUBDIVA_SelectFaceVertices, value, R3TID_INTEGER, 0); 
  1300. }
  1301.  
  1302. function GetR3SUBDIVA_SelectFaceVertices() {
  1303.   return R3Get(this.r3obj, R3SUBDIVA_SelectFaceVertices, R3TID_INTEGER, 0); 
  1304. }
  1305.  
  1306. R3SUBDIVA_VertexUVsInFaceMod = 1235557;
  1307. function SetR3SUBDIVA_VertexUVsInFaceMod(value) {
  1308.   R3Set(this.r3obj, R3SUBDIVA_VertexUVsInFaceMod, value, R3TID_INTEGER, 0); 
  1309. }
  1310.  
  1311. function GetR3SUBDIVA_VertexUVsInFaceMod() {
  1312.   return R3Get(this.r3obj, R3SUBDIVA_VertexUVsInFaceMod, R3TID_INTEGER, 0); 
  1313. }
  1314.  
  1315. R3SUBDIVA_PhongShade = 1235581;
  1316. function SetR3SUBDIVA_PhongShade(value) {
  1317.   R3Set(this.r3obj, R3SUBDIVA_PhongShade, value, R3TID_INTEGER, 0); 
  1318. }
  1319.  
  1320. function GetR3SUBDIVA_PhongShade() {
  1321.   return R3Get(this.r3obj, R3SUBDIVA_PhongShade, R3TID_INTEGER, 0); 
  1322. }
  1323.  
  1324. R3SUBDIVA_MaxDisplacement = 1235582;
  1325. function SetR3SUBDIVA_MaxDisplacement(value) {
  1326.   R3Set(this.r3obj, R3SUBDIVA_MaxDisplacement, value, R3TID_FLOAT, 0); 
  1327. }
  1328.  
  1329. function GetR3SUBDIVA_MaxDisplacement() {
  1330.   return R3Get(this.r3obj, R3SUBDIVA_MaxDisplacement, R3TID_FLOAT, 0); 
  1331. }
  1332.  
  1333. var R3SUBDIVA_EvalDenseParamAddr = 1235583; // r3Vect[]
  1334. var R3SUBDIVA_EvalDenseFaceMaterial = 1235584; // String
  1335. R3SUBDIVA_NextFaceId = 1235585;
  1336. function SetR3SUBDIVA_NextFaceId(value) {
  1337.   R3Set(this.r3obj, R3SUBDIVA_NextFaceId, value, R3TID_INTEGER, 0); 
  1338. }
  1339.  
  1340. function GetR3SUBDIVA_NextFaceId() {
  1341.   return R3Get(this.r3obj, R3SUBDIVA_NextFaceId, R3TID_INTEGER, 0); 
  1342. }
  1343.  
  1344. var R3SUBDIVA_NoAutoUVInit = 1235586; // Boolean
  1345. var R3SUBDIVA_KeepAllPoints = 1235587; // Boolean
  1346. var R3SUBDIVHT_VERTEX = 0;
  1347. var R3SUBDIVHT_EDGE = 1;
  1348. var R3SUBDIVHT_FACE = 2;
  1349. var R3SUBDIVHT_CENTER = 3;
  1350. var R3SUBDIVHT_FACEVERTEX = 4;
  1351. var R3SUBDIVR_POINT = 0;
  1352. var R3SUBDIVR_EDGE = 1;
  1353. var R3SUBDIVR_FACE = 2;
  1354. var R3SUBDIVEXTRREGIONOPT_GROUPS = 0;
  1355. var R3SUBDIVEXTRREGIONOPT_SEPARATE = 1;
  1356. var R3SUBDIVEXTRNORMALOPT_GROUP = 0;
  1357. var R3SUBDIVEXTRNORMALOPT_FACE = 1;
  1358. var R3SUBDIVEXTRNORMALOPT_VERTEX = 2;
  1359. var R3SUBDIVEXTRNORMALOPT_SELECTEDFACEVERTEX = 3;
  1360. var R3SUBDIVACTION_EXTRUDE = 0;
  1361. var R3SUBDIVACTION_SUBDIVIDE = 1;
  1362. var R3SUBDIVTYPE_SMOOTH = 0;
  1363. var R3SUBDIVTYPE_SMOOTHBILINEAR = 1;
  1364. var R3SUBDIVTYPE_SMOOTHTRIANGLE = 2;
  1365. var R3SUBDIVTYPE_POLYGONAL = 3;
  1366. var R3SDSTRANSFFACENORMALOPT_FACE = 0;
  1367. var R3SDSTRANSFFACENORMALOPT_GROUP = 1;
  1368. var R3SDSVERTEXSHARPNESS_ROUNDED = 0;
  1369. var R3SDSVERTEXSHARPNESS_SEMISHARP = 1;
  1370. var R3SDSVERTEXSHARPNESS_SHARP = 2;
  1371. var R3SDSEDGESHARPNESS_ROUNDED = 0;
  1372. var R3SDSEDGESHARPNESS_SEMISHARP = 1;
  1373. var R3SDSEDGESHARPNESS_SHARP = 2;
  1374. var R3SDSEDGESHARPNESS_FREE = 3;
  1375. var R3MAX_PWCOMPONETS = 3;
  1376. var R3SDSFACEMATERIALF_TEXTURE = 1;
  1377. var R3SDSNOTIFY_REMOVEFACE = 1;
  1378. var R3SDSNOTIFY_INVALIDATEFACEID = 2;
  1379. var R3SDSNOTIFY_BEVELEDOBJECT = 4;
  1380. var R3SDSNOTIFY_BEGINCHANGEFACEID = 8;
  1381. var R3SDSNOTIFY_CHANGEFACEID = 16;
  1382. var R3SDSNOTIFY_ENDCHANGEFACEID = 32;
  1383. include("real/raytr/r3cmetnu.js")
  1384.  
  1385.  
  1386. function r3Subdivision () { 
  1387.    this.base = r3God;
  1388.    if(arguments.length) {
  1389.       this.base(R3CLID_SUBDIVISION, arguments);
  1390.    }
  1391.    // Methods
  1392.    this.ADDFACE=mR3SUBDIVM_ADDFACE;
  1393.    this.MERGEVERTICES=mR3SUBDIVM_MERGEVERTICES;
  1394.    this.SUBDIVIDE=mR3SUBDIVM_SUBDIVIDE;
  1395.    this.SUBDIVIDEFACE=mR3SUBDIVM_SUBDIVIDEFACE;
  1396.    this.EXTRUDE=mR3SUBDIVM_EXTRUDE;
  1397.    this.GETMAXEDGESPERFACE=mR3SUBDIVM_GETMAXEDGESPERFACE;
  1398.    this.SPLITEDGE=mR3SUBDIVM_SPLITEDGE;
  1399.    this.DIVIDEFACE=mR3SUBDIVM_DIVIDEFACE;
  1400.    this.MERGEFACES=mR3SUBDIVM_MERGEFACES;
  1401.    this.SETUV=mR3SUBDIVM_SETUV;
  1402.    this.GETUV=mR3SUBDIVM_GETUV;
  1403.    this.SEPARATEFACES=mR3SUBDIVM_SEPARATEFACES;
  1404.    this.NEWFACE=mR3SUBDIVM_NEWFACE;
  1405.    this.DELFACE=mR3SUBDIVM_DELFACE;
  1406.    this.UPDATEFACE=mR3SUBDIVM_UPDATEFACE;
  1407.    this.MELT=mR3SUBDIVM_MELT;
  1408.    this.EXTRUDEVERTEX=mR3SUBDIVM_EXTRUDEVERTEX;
  1409.    this.MERGEOBJECTS=mR3SUBDIVM_MERGEOBJECTS;
  1410.    this.HIDESELECTEDFACES=mR3SUBDIVM_HIDESELECTEDFACES;
  1411.    this.SHOWALLFACES=mR3SUBDIVM_SHOWALLFACES;
  1412.    this.CONNECTEDGES=mR3SUBDIVM_CONNECTEDGES;
  1413.    this.TRANSFORMFACE=mR3SUBDIVM_TRANSFORMFACE;
  1414.    this.DUPLICATEANDCONNEC=mR3SUBDIVM_DUPLICATEANDCONNEC;
  1415.    this.BEVELVERTICES=mR3SUBDIVM_BEVELVERTICES;
  1416.    this.BEVELEDGES=mR3SUBDIVM_BEVELEDGES;
  1417.    this.FACETOTRISETS=mR3SUBDIVCM_FACETOTRISETS;
  1418.    this.FLIPSELECTEDFACES=mR3SUBDIVM_FLIPSELECTEDFACES;
  1419.    this.ADDUVWCHANNEL=mR3SUBDIVM_ADDUVWCHANNEL;
  1420.    this.DELUVWCHANNEL=mR3SUBDIVM_DELUVWCHANNEL;
  1421.    this.MERGEEDGES=mR3SUBDIVM_MERGEEDGES;
  1422.    this.DESTROYFACE=mR3SUBDIVM_DESTROYFACE;
  1423.    this.MERGEOBJECTSSELECT=mR3SUBDIVM_MERGEOBJECTSSELECT;
  1424.    this.POLYGONALTOTRISETS=mR3SUBDIVM_POLYGONALTOTRISETS;
  1425.    this.SMOOTHTOTRISETS=mR3SUBDIVM_SMOOTHTOTRISETS;
  1426.    this.SELECTEDFACESTOTRI=mR3SUBDIVM_SELECTEDFACESTOTRI;
  1427.    this.SELECTEDFACESTOQUA=mR3SUBDIVM_SELECTEDFACESTOQUA;
  1428.    this.FACESCHANGEDFROMOU=mR3SUBDIVM_FACESCHANGEDFROMOU;
  1429.    this.MAKETUNNEL=mR3SUBDIVM_MAKETUNNEL;
  1430.    this.SUBDIVIDELOCALLY=mR3SUBDIVM_SUBDIVIDELOCALLY;
  1431.    this.CALCULATEVERTEXNOR=mR3SUBDIVM_CALCULATEVERTEXNOR;
  1432.    this.MOVEVERTEXONNORMAL=mR3SUBDIVM_MOVEVERTEXONNORMAL;
  1433.    this.INVALIDATESMOOTHOB=mR3SUBDIVM_INVALIDATESMOOTHOB;
  1434.    this.CALCULATEEDGECENTE=mR3SUBDIVM_CALCULATEEDGECENTE;
  1435.    this.TRANSFORMEDGE=mR3SUBDIVM_TRANSFORMEDGE;
  1436.    this.SELECTINVALIDFACES=mR3SUBDIVM_SELECTINVALIDFACES;
  1437.    this.SMOOTHENVERTEXNORM=mR3SUBDIVM_SMOOTHENVERTEXNORM;
  1438.    this.FLATTENVERTEXNORMA=mR3SUBDIVM_FLATTENVERTEXNORMA;
  1439.    this.SETPOINTWISEVALUE=mR3SUBDIVM_SETPOINTWISEVALUE;
  1440.    this.GETPOINTWISEVALUE=mR3SUBDIVM_GETPOINTWISEVALUE;
  1441.    this.ADDPOINTWISEATTRIB=mR3SUBDIVM_ADDPOINTWISEATTRIB;
  1442.    this.REMOVEPOINTWISEATT=mR3SUBDIVM_REMOVEPOINTWISEATT;
  1443.    this.GETWEIGHTS=mR3SUBDIVM_GETWEIGHTS;
  1444.    this.CHANGEWEIGHTS=mR3SUBDIVM_CHANGEWEIGHTS;
  1445.    this.TRIANGLESTOQUADS=mR3SUBDIVM_TRIANGLESTOQUADS;
  1446.    this.INVERT=mR3SUBDIVM_INVERT;
  1447.    this.RENDERPATCHES=mR3SUBDIVM_RENDERPATCHES;
  1448.    this.SETSELECTEDEDGESHA=mR3SUBDIVM_SETSELECTEDEDGESHA;
  1449.    this.GETEDGESHARPNESS=mR3SUBDIVM_GETEDGESHARPNESS;
  1450.    this.SETSELECTEDVERTEXS=mR3SUBDIVM_SETSELECTEDVERTEXS;
  1451.    this.GETVERTEXSHARPNESS=mR3SUBDIVM_GETVERTEXSHARPNESS;
  1452.    this.FREEEDGELIST=mR3SUBDIVM_FREEEDGELIST;
  1453.    this.SETSELECTEDEDGEROU=mR3SUBDIVM_SETSELECTEDEDGEROU;
  1454.    this.GETEDGEROUNDING=mR3SUBDIVM_GETEDGEROUNDING;
  1455.    this.JOINFACES=mR3SUBDIVM_JOINFACES;
  1456.    this.GETPOINTWISECHANNE=mR3SUBDIVM_GETPOINTWISECHANNE;
  1457.    this.GETFACESPACE=mR3SUBDIVM_GETFACESPACE;
  1458.    this.GETUVWATTRS=mR3SUBDIVM_GETUVWATTRS;
  1459.    this.GETCHANNELATTRS=mR3SUBDIVM_GETCHANNELATTRS;
  1460.    this.ALLOCPOINTS=mR3SUBDIVM_ALLOCPOINTS;
  1461.    this.ASSIGNVERTEX=mR3SUBDIVM_ASSIGNVERTEX;
  1462.    this.MAKEFACE=mR3SUBDIVM_MAKEFACE;
  1463.    this.ATTACHMATERIALTOSE=mR3SUBDIVM_ATTACHMATERIALTOSE;
  1464.    this.DETACHMATERIALFROM=mR3SUBDIVM_DETACHMATERIALFROM;
  1465.    this.GETFACEMATERIALLIS=mR3SUBDIVM_GETFACEMATERIALLIS;
  1466.    this.OPTIMIZEFACES=mR3SUBDIVM_OPTIMIZEFACES;
  1467.    this.INSERTVERTEXTOFACE=mR3SUBDIVM_INSERTVERTEXTOFACE;
  1468.    this.REMOVEVERTEXFROMFA=mR3SUBDIVM_REMOVEVERTEXFROMFA;
  1469.    this.SETSELECTEDFACESUV=mR3SUBDIVM_SETSELECTEDFACESUV;
  1470.    this.SETALLFACESUVVISIB=mR3SUBDIVM_SETALLFACESUVVISIB;
  1471.    this.SETFACEMATERIALUV=mR3SUBDIVM_SETFACEMATERIALUV;
  1472.    this.DETACHMATERIALFROM=mR3SUBDIVM_DETACHMATERIALFROM;
  1473.    this.GETVERTEXCOUNTOFFA=mR3SUBDIVM_GETVERTEXCOUNTOFFA;
  1474.    this.INTERPOLATEPOINTWI=mR3SUBDIVM_INTERPOLATEPOINTWI;
  1475.    this.DIVIDEFACESBYINDIC=mR3SUBDIVM_DIVIDEFACESBYINDIC;
  1476.    this.CALCULATEFACECENTE=mR3SUBDIVM_CALCULATEFACECENTE;
  1477.    this.DUPLICATE=mR3SUBDIVM_DUPLICATE;
  1478.    this.COPYSELECTED=mR3SUBDIVM_COPYSELECTED;
  1479.    this.SETFACE=mR3SUBDIVM_SETFACE;
  1480.    this.FILLHOLES=mR3SUBDIVM_FILLHOLES;
  1481.    this.UNWRAPUV=mR3SUBDIVM_UNWRAPUV;
  1482.    this.DEFAULTUV=mR3SUBDIVM_DEFAULTUV;
  1483.    this.DELETEORPHANVERTIC=mR3SUBDIVM_DELETEORPHANVERTIC;
  1484.    this.SETPOINTLOCAL=mR3SUBDIVM_SETPOINTLOCAL;
  1485.    this.GETPOINTLOCAL=mR3SUBDIVM_GETPOINTLOCAL;
  1486.    this.ALLOCFACEID=mR3SUBDIVM_ALLOCFACEID;
  1487.    this.REGISTERNOTIFY=mR3SUBDIVM_REGISTERNOTIFY;
  1488.    this.UNREGISTERNOTIFY=mR3SUBDIVM_UNREGISTERNOTIFY;
  1489.    this.UNWRAPGEOMETRY=mR3SUBDIVM_UNWRAPGEOMETRY;
  1490.    this.GETFACECENTERANDNO=mR3SUBDIVM_GETFACECENTERANDNO;
  1491.    this.AUTOINITIALIZEFACE=mR3SUBDIVM_AUTOINITIALIZEFACE;
  1492.    this.RENAMEFACEMATERIAL=mR3SUBDIVM_RENAMEFACEMATERIAL;
  1493.    this.GETMAXEDGESPERVERT=mR3SUBDIVM_GETMAXEDGESPERVERT;
  1494.    this.SELECTEDFACESTOTRI=mR3SUBDIVM_SELECTEDFACESTOTRI;
  1495.    this.WELD=mR3SUBDIVM_WELD;
  1496.    this.GETFACE=mR3SUBDIVM_GETFACE;
  1497.    this.FLATTEN=mR3SUBDIVM_FLATTEN;
  1498.    this.AUTOCREASES=mR3SUBDIVM_AUTOCREASES;
  1499.    this.GETFACEINDEX=mR3SUBDIVM_GETFACEINDEX;
  1500.  
  1501.    // Attributes
  1502.    this.GetPointCount=GetR3SUBDIVA_PointCount;
  1503.    this.SetPointCount=SetR3SUBDIVA_PointCount;
  1504.    this.GetPoints=GetR3SUBDIVA_Points;
  1505.    this.SetPoints=SetR3SUBDIVA_Points;
  1506.    this.GetFaceCount=GetR3SUBDIVA_FaceCount;
  1507.    this.SetFaceCount=SetR3SUBDIVA_FaceCount;
  1508.    this.GetType=GetR3SUBDIVA_Type;
  1509.    this.SetType=SetR3SUBDIVA_Type;
  1510.    this.GetSelectResolution=GetR3SUBDIVA_SelectResolution;
  1511.    this.SetSelectResolution=SetR3SUBDIVA_SelectResolution;
  1512.    this.GetEdgeCount=GetR3SUBDIVA_EdgeCount;
  1513.    this.GetUVCoords=GetR3SUBDIVA_UVCoords;
  1514.    this.SetUVCoords=SetR3SUBDIVA_UVCoords;
  1515.    this.GetQuality=GetR3SUBDIVA_Quality;
  1516.    this.SetQuality=SetR3SUBDIVA_Quality;
  1517.    this.GetCurrentUVName=GetR3SUBDIVA_CurrentUVName;
  1518.    this.SetCurrentUVName=SetR3SUBDIVA_CurrentUVName;
  1519.    this.GetWrapU=GetR3SUBDIVA_WrapU;
  1520.    this.SetWrapU=SetR3SUBDIVA_WrapU;
  1521.    this.GetWrapV=GetR3SUBDIVA_WrapV;
  1522.    this.SetWrapV=SetR3SUBDIVA_WrapV;
  1523.    this.GetWeights=GetR3SUBDIVA_Weights;
  1524.    this.SetWeights=SetR3SUBDIVA_Weights;
  1525.    this.GetFloatSize=GetR3SUBDIVA_FloatSize;
  1526.    this.GetColorSize=GetR3SUBDIVA_ColorSize;
  1527.    this.GetPointwiseColor=GetR3SUBDIVA_PointwiseColor;
  1528.    this.SetPointwiseColor=SetR3SUBDIVA_PointwiseColor;
  1529.    this.GetPointwiseTranspare=GetR3SUBDIVA_PointwiseTranspare;
  1530.    this.SetPointwiseTranspare=SetR3SUBDIVA_PointwiseTranspare;
  1531.    this.GetPointwiseReflectio=GetR3SUBDIVA_PointwiseReflectio;
  1532.    this.SetPointwiseReflectio=SetR3SUBDIVA_PointwiseReflectio;
  1533.    this.GetPointwiseAlpha=GetR3SUBDIVA_PointwiseAlpha;
  1534.    this.SetPointwiseAlpha=SetR3SUBDIVA_PointwiseAlpha;
  1535.    this.GetPointwiseFade=GetR3SUBDIVA_PointwiseFade;
  1536.    this.SetPointwiseFade=SetR3SUBDIVA_PointwiseFade;
  1537.    this.GetPointwiseIlluminat=GetR3SUBDIVA_PointwiseIlluminat;
  1538.    this.SetPointwiseIlluminat=SetR3SUBDIVA_PointwiseIlluminat;
  1539.    this.GetPointwiseMatSpaceC=GetR3SUBDIVA_PointwiseMatSpaceC;
  1540.    this.SetPointwiseMatSpaceC=SetR3SUBDIVA_PointwiseMatSpaceC;
  1541.    this.GetPointwiseOpticalTh=GetR3SUBDIVA_PointwiseOpticalTh;
  1542.    this.SetPointwiseOpticalTh=SetR3SUBDIVA_PointwiseOpticalTh;
  1543.    this.GetPointwiseScope=GetR3SUBDIVA_PointwiseScope;
  1544.    this.SetPointwiseScope=SetR3SUBDIVA_PointwiseScope;
  1545.    this.GetPointwiseVolumeSam=GetR3SUBDIVA_PointwiseVolumeSam;
  1546.    this.SetPointwiseVolumeSam=SetR3SUBDIVA_PointwiseVolumeSam;
  1547.    this.GetInterpolateBoundar=GetR3SUBDIVA_InterpolateBoundar;
  1548.    this.SetInterpolateBoundar=SetR3SUBDIVA_InterpolateBoundar;
  1549.    this.GetHasRoundings=GetR3SUBDIVA_HasRoundings;
  1550.    this.GetCurrentFaceMateria=GetR3SUBDIVA_CurrentFaceMateria;
  1551.    this.SetCurrentFaceMateria=SetR3SUBDIVA_CurrentFaceMateria;
  1552.    this.GetChannelList=GetR3SUBDIVA_ChannelList;
  1553.    this.GetPointwiseUVCoords=GetR3SUBDIVA_PointwiseUVCoords;
  1554.    this.SetPointwiseUVCoords=SetR3SUBDIVA_PointwiseUVCoords;
  1555.    this.GetSelectFaceVertices=GetR3SUBDIVA_SelectFaceVertices;
  1556.    this.SetSelectFaceVertices=SetR3SUBDIVA_SelectFaceVertices;
  1557.    this.GetVertexUVsInFaceMod=GetR3SUBDIVA_VertexUVsInFaceMod;
  1558.    this.SetVertexUVsInFaceMod=SetR3SUBDIVA_VertexUVsInFaceMod;
  1559.    this.GetPhongShade=GetR3SUBDIVA_PhongShade;
  1560.    this.SetPhongShade=SetR3SUBDIVA_PhongShade;
  1561.    this.GetMaxDisplacement=GetR3SUBDIVA_MaxDisplacement;
  1562.    this.SetMaxDisplacement=SetR3SUBDIVA_MaxDisplacement;
  1563.    this.GetNextFaceId=GetR3SUBDIVA_NextFaceId;
  1564.    this.SetNextFaceId=SetR3SUBDIVA_NextFaceId;
  1565. }
  1566.  
  1567. r3Subdivision.prototype=new r3Level;
  1568. // r3subdiv.h_H